/////////////////////////////////////////////////////////////////////////////
// Name:        ax_summaryviewpanel.h
// Purpose:     
// Author:      Julian Smart
// Modified by: 
// Created:     27/03/2009 11:59:49
// RCS-ID:      
// Copyright:   
// Licence:     New BSD License
/////////////////////////////////////////////////////////////////////////////

#ifndef _AX_SUMMARYVIEWPANEL_H_
#define _AX_SUMMARYVIEWPANEL_H_

/*
 * Includes
 */

////@begin includes
////@end includes

#include "ax/ax_ui_adaptation.h"
#include "ax/ax_textctrl.h"

/*
 * Forward declarations
 */

////@begin forward declarations
class wxBoxSizer;
class AxTextCtrl;
////@end forward declarations

/*
 * Control identifiers
 */

////@begin control identifiers
#define SYMBOL_AXSUMMARYVIEWPANEL_STYLE wxNO_BORDER|wxTAB_TRAVERSAL
#define SYMBOL_AXSUMMARYVIEWPANEL_TITLE wxEmptyString
#define SYMBOL_AXSUMMARYVIEWPANEL_IDNAME wxID_ANY
#define SYMBOL_AXSUMMARYVIEWPANEL_SIZE wxSize(400, 300)
#define SYMBOL_AXSUMMARYVIEWPANEL_POSITION wxDefaultPosition
////@end control identifiers


/**
    @class AxSummaryViewPanel
    
    A panel for displaying a textual summary.

    @category{ax}
 */

class AxSummaryViewPanel: public wxPanel
{    
    DECLARE_DYNAMIC_CLASS( AxSummaryViewPanel )
    DECLARE_EVENT_TABLE()

public:
    /// Constructors
    AxSummaryViewPanel();
    AxSummaryViewPanel( wxWindow* parent, wxWindowID id = SYMBOL_AXSUMMARYVIEWPANEL_IDNAME, const wxPoint& pos = SYMBOL_AXSUMMARYVIEWPANEL_POSITION, const wxSize& size = SYMBOL_AXSUMMARYVIEWPANEL_SIZE, long style = SYMBOL_AXSUMMARYVIEWPANEL_STYLE );

    /// Creation
    bool Create( wxWindow* parent, wxWindowID id = SYMBOL_AXSUMMARYVIEWPANEL_IDNAME, const wxPoint& pos = SYMBOL_AXSUMMARYVIEWPANEL_POSITION, const wxSize& size = SYMBOL_AXSUMMARYVIEWPANEL_SIZE, long style = SYMBOL_AXSUMMARYVIEWPANEL_STYLE );

    /// Destructor
    ~AxSummaryViewPanel();

    /// Initialises member variables
    void Init();

    /// Creates the controls and sizers
    void CreateControls();

    void OnSysColourChanged(wxSysColourChangedEvent& event);

////@begin AxSummaryViewPanel event handler declarations

    /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEXT_SPEAK_ALL
    void OnTextSpeakAllClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEXT_SPEAK_FROM_CURSOR
    void OnTextSpeakFromCursorClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEXT_STOP
    void OnTextStopClick( wxCommandEvent& event );

    /// wxEVT_UPDATE_UI event handler for ID_TEXT_STOP
    void OnTextStopUpdate( wxUpdateUIEvent& event );

    /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEXT_PAUSE
    void OnTextPauseClick( wxCommandEvent& event );

    /// wxEVT_UPDATE_UI event handler for ID_TEXT_PAUSE
    void OnTextPauseUpdate( wxUpdateUIEvent& event );

    /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEXT_BACK
    void OnTextBackClick( wxCommandEvent& event );

    /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_TEXT_FORWARD
    void OnTextForwardClick( wxCommandEvent& event );

////@end AxSummaryViewPanel event handler declarations

////@begin AxSummaryViewPanel member function declarations

    /// Retrieves bitmap resources
    wxBitmap GetBitmapResource( const wxString& name );

    /// Retrieves icon resources
    wxIcon GetIconResource( const wxString& name );
////@end AxSummaryViewPanel member function declarations

    /// Should we show tooltips?
    static bool ShowToolTips();

////@begin AxSummaryViewPanel member variables
    wxBoxSizer* m_parentSizer;
    AxTextCtrl* m_textCtrl;
    wxBoxSizer* m_controlSizer;
    wxButton* m_speakAllCtrl;
    wxButton* m_speakFromCursorCtrl;
    wxButton* m_stopCtrl;
    wxButton* m_backCtrl;
    wxButton* m_forwardCtrl;
    /// Control identifiers
    enum {
        ID_TEXT_SPEAK_ALL = 11100,
        ID_TEXT_SPEAK_FROM_CURSOR = 11101,
        ID_TEXT_STOP = 11102,
        ID_TEXT_PAUSE = 11103,
        ID_TEXT_BACK = 11104,
        ID_TEXT_FORWARD = 11105
    };
////@end AxSummaryViewPanel member variables

    AxSelfVoicing m_adapter;
};

#endif
    // _AX_SUMMARYVIEWPANEL_H_
